import request from '@/utils/request'

/**
 * 语音转文字
 * @param {File} audioFile 音频文件
 * @returns {Promise} 转换结果
 */
export function speechToText(audioFile) {
  const formData = new FormData()
  formData.append('audio', audioFile)
  
  return request({
    url: '/chat/voice/speech-to-text',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 文字转语音
 * @param {string} text 要转换的文字
 * @param {string} voice 音色（可选，默认为cherry）
 * @returns {Promise} 音频数据
 */
export function textToSpeech(text, voice = 'cherry') {
  return request({
    url: '/chat/voice/text-to-speech',
    method: 'post',
    data: {
      text,
      voice
    },
    responseType: 'blob'
  })
}

/**
 * 语音聊天 - 完整的语音交互流程
 * @param {File} audioFile 音频文件
 * @param {string} memoryId 会话ID
 * @param {string} roleId 角色ID
 * @returns {Promise} 语音聊天结果
 */
export function voiceChat(audioFile, memoryId, roleId) {
  const formData = new FormData()
  formData.append('audio', audioFile)
  formData.append('memoryId', memoryId)
  formData.append('roleId', roleId)
  
  return request({
    url: '/chat/voice/chat',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}
